import CryptoJS from 'crypto-js'

const aeskey = 'gxwzlbcb9d11b3be25f5a1a7dc8ca0cd'

// AES 加密
export function encryptAES(data) {
  if (!data || data === '') {
    return data
  }

  // 处理密钥：转换为WordArray类型
  const secretKey = CryptoJS.enc.Utf8.parse(aeskey)

  // 加密配置（使用CBC模式和Pkcs7填充）
  const cfg = {
    iv: CryptoJS.enc.Utf8.parse(aeskey.slice(0, 16)), // 取前16位作为IV
    mode: CryptoJS.mode.CBC,
    padding: CryptoJS.pad.Pkcs7,
  }

  // 执行加密
  const encrypted = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(data), secretKey, cfg)

  // 返回Base64格式的加密结果
  return encrypted.toString()
}

// AES 解密
export function decryptAES(encryptedData) {
  if (!encryptedData || encryptedData === '') {
    return encryptedData
  }
  const secretKey = CryptoJS.enc.Utf8.parse(aeskey)
  const cfg = {
    iv: CryptoJS.enc.Utf8.parse(aeskey.slice(0, 16)),
    mode: CryptoJS.mode.CBC,
    padding: CryptoJS.pad.Pkcs7,
  }

  const decrypted = CryptoJS.AES.decrypt(encryptedData, secretKey, cfg)

  return decrypted.toString(CryptoJS.enc.Utf8)
}

// MD5 加密
export function encryptMD5(data) {
  if (data && data != '') {
    return CryptoJS.MD5(CryptoJS.enc.Utf8.parse(data)).toString()
  } else {
    return ''
  }
}
